package example.simple_mindmap.common.interceptor;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * @BelongsProject: 0.forum_system
 * @BelongsPackage: com.example.forum_system.interceptor
 * @Author : 游在海里的鱼
 * @CreateTime : 2023-11-12  12:16
 * @Version : 1.0
 * @AlassName :应用程序的配置类
 * @Description : 这里只配置一个登录拦截器
 */
@Configuration
public class AppConfig implements WebMvcConfigurer {

    //1.获取登录拦截器的对象
    @Autowired
    UserInfoInterceptor loginInterceptor;

    //2.添加登录拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        //注册登录拦截器,(registry:n.注册处)
        registry.addInterceptor(loginInterceptor)
                .addPathPatterns("/**")              //监察所有模式的请求
                .excludePathPatterns("/doc.html") //注册请求
                .excludePathPatterns("/user/signUp/**") //注册请求
                .excludePathPatterns("/user/signIn/**") //登录请求
                .excludePathPatterns("/sign-in.html") //登录界面/.'
                .excludePathPatterns("/sign-up.html") //注册界面
                .excludePathPatterns("/dist/**")      //所有的css文件
                .excludePathPatterns("/image/**")     //图片文件
                .excludePathPatterns("/js/**")        //所有的js文件
                .excludePathPatterns("/Swagger*/**")  //测试接口
                .excludePathPatterns("v3*/**")        //测试的代码
                .excludePathPatterns("/**.ico");      //图片
    }
}
